From: Florian Müllner Date: Mon, 29 Apr 2019 17:53:57 +0000 (+0000) Subject: panel: Don't chain up to parent's allocate X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~845^2^2~236 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d57234bec93dc486dac07d6cbc02c52091c5098a;p=gnome-shell.git panel: Don't chain up to parent's allocate The top bar handles allocating all its children itself, so there's little value in chaining up to st_widget_allocate() and get the default layout manager allocating all children again (and possibly differently). If this happens, we end up with an infinite allocation cycle with corresponding performance penalty. Fix this by just doing and what Shell.GenericContainer did before commit 286ffbe2b6 replaced it, and not chain up to StWidget. Thanks to Robert Mader for debugging the issue. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1054 --- diff --git a/js/ui/panel.js b/js/ui/panel.js index 9790d4843..7fe09fe50 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -877,7 +877,7 @@ class Panel extends St.Widget { } vfunc_allocate(box, flags) { - super.vfunc_allocate(box, flags); + this.set_allocation(box, flags); let allocWidth = box.x2 - box.x1; let allocHeight = box.y2 - box.y1;